Advances in the field of computer and electronic system design continue to drive and facilitate greater processing efficiencies. Through modeling and other analysis, electronic files containing designs for electronic circuits and computer systems are optimized for use as templates for hardware manufacturing and networking. A typical computer/circuit design file includes text that accounts for numerous electronic hardware components. For example, a file containing a design commonly includes programmatic objects and identifiers descriptive of busses, microchips, expansion cards and other system hardware. A bus generally enables selective communication between a computer processor unit (CPU) and one or more components, such as those mounted on an expansion card. A typical bus, such as a Peripheral Component Interconnect or Industry Standard Architecture bus, may additionally couple to a main system circuit board. Expansion cards are typically thin, rectangular printed circuit boards that have connector pins along one edge that couple to corresponding sockets of the bus. Programmatic objects describing such components within the design file may include delay, routing, voltage, resistance, symbol and/or other parameter data.
In operation, actual components of a circuit cooperate to process electronic signals according to system requirements. More particularly, the components interconnect to generate and communicate electronic signals. Different combinations and configurations of components affect system performance. For example, component layout can impact system timing. System timing regards the arrival of a signal at a given component within a predetermined window of time. Each component visited along the path of a signal introduces varying delay that affects the time required for the signal to reach a destination component. Thus, successful timing requires coordination with other signals and signal paths to ensure coordinated system processing. Failure to achieve desired timing can result in processing delays, error and failure.
Another performance factor affected by system design is noise. Noise is characterized as static or interference introduced as the signal travels through system components and connections. As such, the electrical characteristics of the signal change as it propagates through a system. For instance, square wave characteristics of an input signal may become less distinct due to loss dispersion encountered in a system. While some tolerance of noise is typically built into a system design specification, unacceptable noise levels can severely impact signal clarity and system performance. For example, data may become corrupted, e.g., a binary “1” may register as a “0.” Designs accommodating high noise levels thus run risk of pervasive error, to include unreliable results, as well as processing failure and delay.
Production of a hardware system represents a substantial investment of material, manpower and other economic resources. Consequently, it is advantageous to verify design integrity prior to committing it to hardware. More particularly, it is desirable to predict or otherwise analyze performance characteristics of a design prior to implementation. To this end, simulation programs, or engines, have been developed to model performance of the programmatic objects of a design. Such modeling practices help to assure conformity with system needs.
Ideally, a simulation engine could process a file containing the entire design, imparting comprehensive performance data to a user in a timely fashion. Due to the massive amounts of components associated with electrical circuit/computer system designs, however, modeling of a comprehensive system and/or network is impractical in terms of modeling every detail of a design. That is, no known simulation engine program can practically model signal flow through a design file that comprehensively addresses all aspects of a system. Processes needed to accomplish such modeling would exceed both processing capacities of known electronic systems, as well as practical time lines of system developers.
To this end, some conventional design processes try to approximate system performance using macrofiles that encapsulate or abstract critical component functionality, and that as a result, are relatively smaller in size. While the relatively smaller size of such macro level files can make simulation more manageable, extreme care and effort must be taken to ensure the macro level files possess the resolution and fidelity necessary to accurately model the system with meaningful veracity. For instance, an improperly constructed macro level file may ignore subtle, less critical components and electrical properties of a system that can nonetheless compromise accuracy in the aggregate. As such, and despite their relatively smaller size, the generation of each macro level file can be a painstaking, error prone and meticulous process that represents a substantial investment of manpower, memory and processing power.
In any case, the practicality and application of macro level files remains undermined by their inherent inflexibility. For instance, each macro level file is unique to a particular design and modeling scenario. As such, an entirely new macro level file must be generated from scratch in response to any design change. Because a typical design session involves frequent design changes, completely new macro level files must be generated numerous times. That is, an entire macro level file must be produced for every contemplated design modification to ensure optimized system performance. Moreover, the inflexibility of the highly structured macro files and associated modeling techniques largely discourages customized, focused and efficient analysis. For instance, a designer interested in the performance of only a portion of a system may nonetheless have to wait and sift through execution and analysis of an entire macro level file. Alternatively, a designer may be relegated to creating a file from scratch that simulates only a portion of interest. In either case, designers must re-accomplish work with sometimes preclusive frequency.
Consequently, and for in part the above delineated reasons, there exists a need for an improved manner of analyzing computer system performance.